import { _decorator, Component, JsonAsset, Label, Node, resources } from 'cc';
const { ccclass, property } = _decorator;
import { Tables } from 'db://assets/Scripts/Luban/schema';
namespace Test.LubanTest {

    @ccclass('LubanTest')
    export class LubanTest extends Component {
        @property(Label)
        label: Label = null;

        protected start(): void {
            /* //一行代码可以加载所有配置。 cfg.Tables 包含所有表的一个实例字段。
            let tables = new Tables(JsonLoader());
            // 访问一个单例表
            console.log(tables.TbTest.getDataList[0])
            // 访问普通的 key-value 表
            console.log(tables.TbTest.get(12).name) */


            // var gameConfDir = ""; // 替换为gen.bat中outputDataDir指向的目录
            // var tables = new Tables(file => JSON.parse(jsb.fileUtils.getStringFromFile(`${gameConfDir}/${file}.json`, 'utf-8')));

            // var test = tables.TbTest.getDataMap();
            // for (var item of test.values()) {
            //     console.log(`id：${item.id},名字：${item.name},描述：${item.desc},数量：${item.count}`);
            // }



            // 最佳方案：使用 resources.load
            resources.load('Data/tbtest', JsonAsset, (err, jsonAsset) => {
                if (err) {
                    console.error('加载失败:', err);
                    return;
                }

                if (jsonAsset) {
                    console.log('加载成功:', jsonAsset.json)
                    const jsonData = jsonAsset.json;
                    // 使用你的 Tables 类处理数据
                    const tables = new Tables(() => jsonData);
                    const test = tables.TbTest.getDataMap();

                    for (const item of test.values()) {
                        console.log(`id：${item.id},名字：${item.name},描述：${item.desc},数量：${item.count}`);
                    }
                }

            });
        }




    }

}
